Cryptographic applications make extensive use of random number generators. One use of random number generators in such applications is to produce secret keys. As is well known, secret keys should exhibit a high level of unpredictability for optimal security. Although pseudorandom number generators are frequently used in cryptographic applications, they provide less than optimal results, because they use deterministic processes to generate a series of outputs from an initial seed or state value.
Therefore, a true random number generator (TRNG) that uses a non-deterministic source as a basis to produce random numbers is highly desirable. Common non-deterministic sources include thermal noise, atmospheric noise, and nuclear decay.
An example of how one known TRNG operates is illustrated in FIG. 1. In this example, two free running oscillators are employed. One oscillator generates a fast periodic signal 101, and the other oscillator generates a relatively slow periodic signal 102. Thermal noise modulates the slow periodic signal 102 so that there is variation (indicated by the hashed area) in its edges. The slow periodic signal 102 is then used to sample the fast periodic signal 101, and the drift caused by the modulation between the two periodic signals provides a source of random binary digits. The resulting probability distribution 103 indicates the likelihood of a “1” in the shaded areas, and a “0” in the non-shaded areas under the curve.